// 浅色主题
export const themeLight = {
  defaultColor: '#46a7fa', // 图表默认颜色
  defaultColors: [
    '#46a7fa',
    '#31f2b0',
    '#ff8585',
    '#fcd668',
    '#8d7efe',
    '#b878f9',
    '#fcc07f',
    '#9fb6d7',
    '#82fa96',
    '#fdf57a',
  ],
  defaultLineColor: '#000', // 轴线颜色
  defaultGridColor: '#e6e6e6', // 网格线颜色
  defaultChartUnitColor: '#000', // 图表总单位颜色
  defaultValueColor: '#000', // 图形上数值字体颜色
  defaultXLabelColor: '#000', // x轴标签字体颜色
  defaultYLabelColor: '#000', // y轴标签字体颜色
  defaultLegendColor: '#000', // Legend字体颜色
  // bar
  defaultColTitleColor: '#000', // 列标题颜色
  // pie
  defaultEmptyColor: '#cbe7ff', // 数据为空默认颜色
  defaultPercentColor: ['#46a7fa', '#cbe7ff'], // 百分比默认颜色
  defaultTotalColor: '#000', // 中心文字颜色
  defaultTitleColor: '#000', // 标题文字颜色
  defaultSplitLineColor: '#fff', // 图例分割线颜色
  defaultSplitLabelColor: '#fff', // 标签颜色
  // gauge
  defaultPointerColor: '#000', // 指针颜色
  defaultArcColor: '#46a7fa', // 表盘颜色
};
// 深色主题
export const themeDark = {
  defaultColor: '#2375fb',
  defaultColors: [
    '#2375fb',
    '#4cfb9a',
    '#fe3d4a',
    '#fecb36',
    '#b330ff',
    '#b878f9',
    '#fcc07f',
    '#9fb6d7',
    '#82fa96',
    '#fdf57a',
  ],
  defaultLineColor: '#165185', // 轴线颜色
  defaultGridColor: '#165185', // 网格线颜色
  defaultChartUnitColor: '#fff', // 图表总单位颜色
  defaultValueColor: '#fff', // 图形上数值字体颜色
  defaultXLabelColor: '#fff', // x轴标签字体颜色
  defaultYLabelColor: '#fff', // y轴标签字体颜色
  defaultLegendColor: '#fff', // Legend字体颜色
  // bar
  defaultColTitleColor: '#91cefd', // 列标题颜色
  // pie
  defaultEmptyColor: 'rgba(35,117,251,0.2)', // 数据为空默认颜色
  defaultPercentColor: ['#2375fb', 'rgba(35,117,251,0.2)'], // 百分比默认颜色
  defaultTotalColor: '#fff', // 中心文字颜色
  defaultTitleColor: '#fff', // 标题文字颜色
  defaultSplitLineColor: '#000', // 图例分割线颜色
  defaultSplitLabelColor: '#000', // 标签颜色
  // gauge
  defaultPointerColor: '#fff', // 指针颜色
  defaultArcColor: '#2375fb', // 表盘颜色
};
// 通用
export const commonConfig = {
  defaultTheme: 'light', // 默认主题
  defaultFontFamily: 'MicrosoftYaHei', // 图表字体
  defaultTickCount: 4, // 网格线条数
  // Guide-Text
  defaultChartUnitFontSize: 14, // 图表总单位字体大小
  // Geom-Label
  defaultValueOffset: 10, // 图形上数值距图形距离
  defaultValueFontSize: 14, // 图形上数值字体大小
  defaultPaddingTop: 50, // 图表上padding
};
// Axis
export const axisConfig = {
  // Axis-x
  defaultXLabelFontSize: 16, // x轴标签字体大小
  defaultXLabelOffset: 15, // x轴标签距x轴距离
  // Axis-y
  defaultYLabelFontSize: 16, // y轴标签字体大小
};
// Legend
export const legendConfig = {
  defaultLegendOffsetY: -1, // 垂直方向偏移
  defaultLegendFontSize: 14, // Legend字体大小
  defaultLegendLineHeight: 20, // 图例行高
  defaultLegendItemGap: 20, // 图例间距
  defaultLegendMarkerCircle: { width: '0.28rem', height: '0.28rem', marginRight: '0.2rem' }, // 圆形图例样式
};
export const lineConfig = {
  defaultLineWidth: 3, // 折线粗细
};
export const guideLineConfig = {
  defaultGuideLineWidth: 2, // 辅助线粗细
  defaultGuideLineColors: ['#FF3131', '#FD610C', '#FFDF09'],
};
// 柱状图默认配置
export const barConfig = {
  defaultBarAdjust: [{ type: 'dodge', marginRatio: 0 }], // 设置分组、层叠
  defaultBarShape: 'circleBar', // 默认形状
  defaultBarWidth: 18, // 每根柱子宽度
  defaultBarOpacity: 1, // 柱状图透明度
  // Facet
  defaultColTitleFontSize: 16, // 列标题大小
};
// 饼图默认配置
export const pieConfig = {
  defaultInnerRadius: 0.77, // 饼图粗细
  defaultTotalFontSize: 34, // 中心文字字体大小
  defaultTitleFontSize: 16, // 标题文字字体大小
  defaultTitleMarginTop: 0, // 标题距图形距离
  defaultTitleLines: 2, // 标题行数
  defaultLineWidth: 2, // 图例分割线粗细
  // Label
  defaultLabelFontSize: 14, // 标签大小
  // Legend
  defaultPieLegendLineHeight: 40, // 图例行高
};
// 面积图默认配置
export const areaConfig = {
  defaultAreaOpacity: 0.2, // 面积图透明度
};
// 点默认配置
export const pointConfig = {
  defaultPointSize: 4, // 点宽度
};
// 进度条默认配置
export const progressConfig = {
  defaultFrontColorWithBg: commonConfig.defaultColor,
  defaultFrontColor: commonConfig.defaultColor,
  defaultBackgroundColor: '#cbe7ff',
  defaultStrokeWidth: 10,
};
export const gaugeConfig = {
  defaultPointerFillColor: '#fff',
  defaultArcWidth: 30,
  defaultTitleFontSize: 16, // 标题文字字体大小
  defaultGaugeDataFontSize: 24, // 数值文字大小
};
// 适配字体大小
export const fitFontSize = fontSize =>
  fontSize * window.viewportScale < 12 ? 12 : fontSize * window.viewportScale;
// 适配标题高度
export const fitHeight = height =>
  height * window.viewportScale < 16 ? 16 : height * window.viewportScale;

// 自定义legend点击事件
export const onLegendClick = (ev, chartIns) => {
  const { item, checked } = ev;
  const { value } = item;
  const geoms = chartIns.getAllGeoms();
  for (let i = 0; i < geoms.length; i++) {
    const geom = geoms[i];
    if (geom.getYScale().field === value) {
      if (checked) {
        geom.show();
      } else {
        geom.hide();
      }
    }
  }
};
